SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE Procedure [dbo].[SP_TMDOCU_CLIE_U02]        
/*-------------------------------------------------------*/        
/*---Empresa              : OFISIS S.A.                --*/        
/*---Cliente              : OFISIS                 --*/        
/*---Sistema              : Tesoreria                  --*/        
/*---M©dulo               : Empresa                    --*/        
/*---Programa             : Actualizacion Tipo Operac. --*/         
/*---                       Caja                       --*/        
/*---Script               : tcmovi_b.sql               --*/        
/*---Nombre SP            : SP_TCMOVI_CAJA_U03         --*/        
/*---Desarrollado por     : Aldo Escobar               --*/        
/*---Fecha Creaci©n       : 24/06/2011                 --*/        
/*---Base Datos           : Microsoft Sql Server       --*/        
/*---Versi©n              : 8.0                        --*/        
/*---Invoca a SP          :                            --*/        
/*-------------------------------------------------------*/        
/*-------------------------------------------------------*/    
/*-  PROCEDURE DE ACTUALIZACION DEL DOCUMENTO CHDF      -*/        
/*-------------------------------------------------------*/        
/* DROP SP_TMDOCU_CLIE_U02         */           
/* EXEC SP_TMDOCU_CLIE_U02 '01', 'OFISIS','CJ000005','2010','08','I','00100089'   */                  
/*-------------------------------------------------------*/        
        
 @ISCO_EMPR TD_VC_002,         
 @ISCO_USUA_MODI TD_VC_008_USUA,        
 @ISCO_CAJA TD_VC_008,         
 @ISAA_CAJA TD_VC_004,         
 @ISMM_CAJA TD_VC_002,         
 @ISTI_MOVI TD_VC_001,          
 @ISNU_COMP_CAJA TD_VC_008          
        
As        
Declare          
@VSCO_TIPO_DOCU TD_VC_003,        
@VSNU_DOCU TD_VC_020,        
@VDFE_OPER TD_DT_001,        
@VDFE_DIFE TD_DT_001,        
@VSCO_MONE TD_VC_003,         
@VSCO_ESTA_DOCU TD_VC_003,        
@VSNU_COMP_CAJA TD_VC_008,        
@VSCO_TIDO_CHDF TD_VC_003,        
@VSCO_ENTI TD_VC_020,         
@VSCO_CLIE TD_VC_020,        
@VSNU_DOCU_CLIE TD_VC_020,        
@VSCO_UNID_CONC TD_VC_003,        
@VSFA_TIPO_CAMB TD_NU_015_006,         
@VSDE_GLOS TD_VC_100,        
@VSIM_MOVI TD_NU_016_004,        
@VSCO_TIPO_OPER TD_VC_003,        
@VSCO_COND_CONT TD_VC_003     
        
/*-----------------  
VAR PARAMETROS*/        
 SELECT  
  @VSCO_TIDO_CHDF = CO_TIDO_CHDF,        
  @VSCO_TIPO_OPER= CO_TIPO_OPER,        
  @VSCO_COND_CONT=CO_COND_CONT        
 FROM TMPARA_TESO         
 WHERE CO_EMPR = @ISCO_EMPR         
        
/*-----------------  
VAR NUEVO INGRESO*/  
 SELECT  @VSCO_TIPO_DOCU = CO_TIPO_DOCU,         
 @VSNU_DOCU = NU_DOCU,         
 @VDFE_OPER= FE_OPER,         
 @VDFE_DIFE = FE_DIFE,         
 @VSCO_ENTI = CO_ENTI,        
 @VSIM_MOVI = IM_MOVI,         
 @VSCO_UNID_CONC = CO_UNID_CONC,        
 @VSFA_TIPO_CAMB = FA_TIPO_CAMB,         
 @VSDE_GLOS = DE_OBSE         
 FROM TCMOVI_CAJA        
 WHERE CO_EMPR = @ISCO_EMPR        
 AND CO_CAJA = @ISCO_CAJA        
 AND AA_CAJA = @ISAA_CAJA        
 AND MM_CAJA = @ISMM_CAJA        
 AND TI_MOVI = @ISTI_MOVI        
 AND NU_COMP_CAJA = @ISNU_COMP_CAJA        
   
 SELECT @VSCO_MONE = CO_MONE        
 FROM TMCAJA        
 Where CO_EMPR = @ISCO_EMPR        
 And CO_CAJA = @ISCO_CAJA     
   
/*VAR TMDOCU_CLIE LEVANTA DATOS SI ES QUE NO SE MODIFICARON CAMPOS CLAVE */  
 SELECT @VSNU_COMP_CAJA = NU_COMP_CAJA,   
        @VSCO_ESTA_DOCU = CO_ESTA_DOCU     
 FROM TMDOCU_CLIE        
 Where CO_EMPR = @ISCO_EMPR        
 And CO_CLIE = @VSCO_ENTI        
 And CO_TIPO_DOCU = @VSCO_TIPO_DOCU        
 And NU_DOCU_CLIE = @VSNU_DOCU   
           
--BUSCAR DOCUMENTO O CLIENTE  
   SELECT @VSNU_DOCU_CLIE = T1.NU_DOCU_CLIE,   
          @VSCO_CLIE = T1.CO_CLIE        
   From   TMDOCU_CLIE T1, TCMOVI_CAJA T2        
   Where   T1.CO_EMPR  = T2.CO_EMPR        
   AND T1.NU_COMP_CAJA = T2.NU_COMP_CAJA         
   AND T1.AA_CAJA = T2.AA_CAJA        
   AND T1.MM_CAJA = T2.MM_CAJA           
   AND T1.CO_EMPR = @ISCO_EMPR        
   And T1.CO_TIPO_DOCU = @VSCO_TIPO_DOCU        
   And T1.FE_EMIS      = @VDFE_OPER        
   And T1.AA_CAJA      = @ISAA_CAJA        
   And T1.MM_CAJA      = @ISMM_CAJA        
   And T1.NU_COMP_CAJA = @ISNU_COMP_CAJA        
   And T1.CO_ESTA_DOCU = 'ACT'        
   And T2.CO_CAJA = @ISCO_CAJA    
        
  
--BUSCAR CLIENTE  
  
IF  @VSCO_TIPO_DOCU = @VSCO_TIDO_CHDF AND @VSCO_TIPO_DOCU != '' AND @VSNU_DOCU != ''   
BEGIN         
        
IF LEN(ISNULL(@VSCO_ESTA_DOCU,''))>0 AND LEN(ISNULL(@VSNU_COMP_CAJA,'')) >0        
BEGIN    
-- SE ACTUALIZA LOS CAMPOS K NO SON CLAVE SI SE CAMBIARON ESTOS CAMPOS ESTARAN NULL  
IF @VSCO_ESTA_DOCU = 'ACT' AND @VSNU_COMP_CAJA = @ISNU_COMP_CAJA      
    
 UPDATE TMDOCU_CLIE        
 SET IM_BRUT_INAF = @VSIM_MOVI,        
 IM_TOTA = @VSIM_MOVI,  
 FE_EMIS = @VDFE_OPER,        
 FE_VENC = @VDFE_DIFE,    
 DE_OBSE = @VSDE_GLOS,      
 CO_USUA_MODI = @ISCO_USUA_MODI,        
 FE_USUA_MODI = GETDATE()        
 Where CO_EMPR = @ISCO_EMPR        
 And CO_CLIE = @VSCO_ENTI        
 And CO_TIPO_DOCU = @VSCO_TIPO_DOCU        
 And NU_DOCU_CLIE = @VSNU_DOCU   
   
END  
--DE LO CONTRARIO SE MODIFICARON CAMPOS CLAVE Y POR ENDE DEVE ELIMINARSE Y VOLVER A INSERTAR  
ELSE IF LEN(ISNULL(@VSNU_DOCU_CLIE,'')) > 0  OR LEN(ISNULL(@VSCO_CLIE,'')) > 0  
BEGIN  
          
  DELETE TMDOCU_CLIE   
  WHERE CO_EMPR = @ISCO_EMPR  
  AND CO_CAJA = @ISCO_CAJA  
  AND AA_CAJA = @ISAA_CAJA  
  AND MM_CAJA = @ISMM_CAJA  
  AND   NU_COMP_CAJA = @ISNU_COMP_CAJA  
  AND   CO_TIPO_DOCU = @VSCO_TIPO_DOCU  
  AND CO_ESTA_DOCU = 'ACT'  
    
            
   EXEC  SP_TMDOCU_CLIE_I04 @ISCO_EMPR, @ISCO_USUA_MODI, @VSCO_TIPO_DOCU, @VSNU_DOCU, @VSCO_ENTI,         
   '', @VSCO_MONE, @VSCO_TIPO_OPER, @VSCO_COND_CONT, @VDFE_OPER,         
   @VSCO_UNID_CONC, @VDFE_DIFE, @VDFE_DIFE, @VDFE_DIFE, @VSFA_TIPO_CAMB,         
   0, @VSIM_MOVI, 0, 0, 0,0, 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N',        
   'N', 'N', 'N', 0, 0, 0, 0,'',0, 0, '', 0, 0 ,'', 0 , 0, @VSIM_MOVI, 0, '', '', NULL, @VSDE_GLOS, '', '',        
   NULL, '', '', @ISCO_CAJA, @ISNU_COMP_CAJA, @ISAA_CAJA, @ISMM_CAJA          
             
END    
  
   
END    
  
        
/*------------------------- Fin ------------------------------*/ 
GO
